//定义一个format函数用于转换Date日期格式
import Toast from '/@vant/weapp/toast/toast';
// Toast("hhh")
//给Date添加一个format函数
Date.prototype.format = function(fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };

    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }

    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(
                RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }

    return fmt;
};

var map_device = {
    "0": "hl30003016",
    "1": "HL30003017",
    "2": "HL30003018",
    "3": "HL30003019"
};

// pages/history/history.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        array: ['总产量', '甲班产量', '乙班产量', '丙班产量', '丁班产量', '左眼条干不匀率', '左眼变异系数1', '左眼变异系数2', '左眼变异系数3', '左眼变异系数4', '右眼条干不匀率', '右眼变异系数1', '右眼变异系数2', '右眼变异系数3', '右眼变异系数4'],
        array_device: ['D81L', 'TM19_1', 'TM19_2', 'TM15'],
        minHour: 10,
        maxHour: 20,
        minDate: new Date(2020, 3, 1).getTime(),
        maxDate: new Date(2021, 10, 1).getTime(),
        currentDate: new Date().getTime(),
        show_start: false,
        show_end: false,
        startTime: null,
        endTime: null,
        chosen: '',
        queryResult: {},
    },
    formSubmit(e) {

        var metricarray = ['total', 'aShift', 'bShift', 'cShift', 'dShift', 'a_l', 'cv_l', 'cv1m_l', 'cv5m_l', 'd_l', 'a_r', 'cv_r', 'cv1m_r', 'cv5m_r', 'd_r'];
        var metric_English = metricarray[e.detail.value.metricPick]
        console.log('form发生了submit事件，携带数据为：', e.detail.value);
        console.log('form发生了submit事件，携带字段数据为：', metric_English);
        var metricResultArray = new Array();
        metricResultArray[0] = metricarray[e.detail.value.metricPick];

        //将这个页面的对象引用到 _this上
        var _this = this;
        wx.request({
            url: 'http://47.106.243.139:8085/api/query',
            data: {
                startTime: e.detail.value.startTime,
                endTime: e.detail.value.endTime,
                metric: metricResultArray,
                deviceName: _this.data.device_id
            },
            method: "POST",
            enableHttp2: "true",
            header: {
                'content-type': 'application/json'
            },
            //查询完毕后，跳转到一个queryResultPage页面，用于展示查询的数据
            success: function(res) {
                //当查询状态是200 提示查询成功，并跳转到显示数据的页面
                if (res.statusCode == 200) {
                    console.log("----requset查询成功------");
                    console.log(res);
                    //弹出查询成功提示
                    Toast('查询成功');
                    _this.setData({
                            queryResult: res.data
                        })
                        //延迟2秒后在跳转到查询结果界面
                    setTimeout(function name(params) {
                        wx.navigateTo({
                            url: '../../pages/queryResultPage/queryResultPage',
                            events: {
                                // 为指定事件添加一个监听器，获取被打开页面传送到当前页面的数据
                                someEvent: function(data) {
                                    console.log(data)
                                }
                            },
                            success: function(res) {
                                // 通过eventChannel向被打开页面传送数据
                                res.eventChannel.emit('acceptDataFromOpenerPage', {
                                    data: _this.data.queryResult,
                                    metric: _this.data.array[_this.data.index],
                                    metric_En: metric_English

                                })
                            }
                        })
                    }, "1000");


                } else if (res.statusCode == 500) {
                    console.log("查询失败，请重新输入数据");
                    //弹出提示框
                    Toast.fail('请重新输入数据');
                } else {
                    console.log("服务器问题");
                    //弹出提示框
                    Toast.fail('服务器问题');
                }
            },


            fail: function(res) {
                console.log(res);
                console.log(this.data)
            }
        });
    },

    // /*    bindDateChange: function(e) {
    //        console.log('picker发送选择改变，携带值为', e.detail.value)
    //        this.setData({
    //            date: e.detail.value
    //        })
    //    }, */

    //选择属性
    bindPickerChange: function(e) {

        console.log('picker发送选择改变，携带值为', e.detail.value)
        this.setData({
            // index: metricarray[e.detail.value]
            index: e.detail.value
        })
    },

    bindDeviceChange: function(e) {

        console.log('device发送选择改变，携带值为', e.detail.value)
        console.log(map_device[e.detail.value]);
        this.setData({
            // index: metricarray[e.detail.value]
            device_index: e.detail.value,
            device_id: map_device[e.detail.value]
        })

    },

    //记录日期选择器的当前时间
    onInput(event) {
        // this.setData({
        //     currentDate: event.detail,
        // });
    },

    //确认选择起始日期
    onConfirm_start(e) {

        const format_startTime = new Date(e.detail).format("yyyy-MM-dd hh:mm:ss")
            // console.log(format_startTime);
        console.log(e);
        this.setData({
            startTime: format_startTime,
            show_start: false
        });
        // console.log(this.data.startTime);
    },

    //弹出起始日期选择框
    showPopup_start() {
        this.setData({ show_start: true });
    },

    //起始时间选取框取消事件
    onCancel_start() {
        this.setData({
            show_start: false
        })
    },
    //隐藏选择起始日期 
    onClose_start() {
        this.setData({ show_start: false });
    },
    //截止时间选取框取消事件
    onCancel_end() {
        this.setData({
            show_end: false
        })
    },
    //确认截止日期
    onConfirm_end(e) {
        const format_endTime = new Date(e.detail).format("yyyy-MM-dd hh:mm:ss");
        // console.log(format_endTime);
        this.setData({
            endTime: format_endTime,
            show_end: false
        });
        // console.log(this.data.endTime);

    },
    //弹出截止日期选择框
    showPopup_end() {
        this.setData({ show_end: true });
    },
    //隐藏选择截止日期选择框 
    onClose_end() {
        this.setData({ show_end: false });
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function() {

    }
})